package com.renjun.smweb.service.EnrollmentService;


import com.alibaba.fastjson.JSONObject;
import com.renjun.smweb.exceptions.BaseException;
import com.renjun.smweb.exceptions.DataNotFoundException;
import com.renjun.smweb.exceptions.EnrollOpenTimeException;
import com.renjun.smweb.exceptions.FileTypeNotFoundException;

import java.io.IOException;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.Map;

/**
 * Created by RenJun on 2017/2/21.
 * 招生设置接口
 */
public interface EnrollmentService {
    /**
     * 招生计划列表
     * @param params
     * @return
     * @throws SQLException
     * @throws DataNotFoundException
     */
    JSONObject enrollPlanList(Map<String,Object> params)throws SQLException,DataNotFoundException;

    /**
     * 招生计划列表统计
     * @param params
     * @return
     * @throws SQLException
     * @throws DataNotFoundException
     */
    JSONObject enrollPlanListStat(Map<String,Object> params)throws SQLException,DataNotFoundException;

    /**
     * 招生计划列表导出
     * @param params
     * @return
     * @throws SQLException
     * @throws DataNotFoundException
     */
    JSONObject expEnrollPlanList(Map<String,Object> params) throws SQLException, DataNotFoundException, FileTypeNotFoundException, IOException;

    /**
     * 批量导入招生计划
     * @param params
     * @return
     * @throws SQLException
     * @throws DataNotFoundException
     */
    JSONObject batchUpdateEnrollPlan(Map<String,Object> params) throws SQLException, DataNotFoundException, IOException, BaseException;

    /**
     * 单个修改招生计划
     * @param params
     * @return
     * @throws SQLException
     * @throws DataNotFoundException
     */
    JSONObject modifyEnrollPlan(Map<String,Object> params) throws SQLException, BaseException;

    /**
     * 录取信息下载设置
     * @param params
     * @return
     * @throws SQLException
     * @throws DataNotFoundException
     */
    JSONObject updateEnrollOpenTime(Map<String,Object> params) throws SQLException, DataNotFoundException, ParseException, EnrollOpenTimeException;

    /**
     * 录取设置预加载
     * @param params
     * @return
     * @throws SQLException
     * @throws DataNotFoundException
     */
    JSONObject queryEnrollOpenTime(Map<String,Object> params)throws SQLException,DataNotFoundException;
}
